Skip to content

feat(cmd): move worker setup out of init - #164

Merged
atqamz merged 9 commits into
mainfrom
161-noninteractive-init
Aug 5, 2026
Merged

feat(cmd): move worker setup out of init#164
atqamz merged 9 commits into
mainfrom
161-noninteractive-init

Conversation

@atqamz

@atqamz atqamz commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

Gate fixes

  • Move legacy unkeyed worker-default migration to the shared new-binary command startup boundary, while keeping target-directory migration in hand init.
  • Align Codex capability and launch documentation with the interactive launcher merged in PR fix(harness): launch Codex as an interactive worker #165.

Verification

  • Fresh no-mistakes run 01KZ7SQHQ0C1D740KSM92ZDTPZ completed review with zero findings after both fixes.
  • Targeted unit and built-binary E2E checks passed for stdin independence, bootstrap state, conversational setup, keyed persistence, harness switching, unsupported settings, and retired --setup behavior.
  • Full Nix lint, build, race, and tagged E2E verification passed before the gate.
  • GitHub CI passed Lint, Ubuntu, macOS, Nix build, and E2E jobs on final head 9a4cd9a71cc46061f38395875d708423c0f28a97.
  • All nine commits are GPG signed and contain no Co-Authored-By trailers.

Sequencing

Issue #163 remains responsible for deleting SPECS.md and auditing the provisional ADR set after this change lands.

Closes #161

@atqamz atqamz self-assigned this Aug 4, 2026
atqamz added 9 commits August 5, 2026 08:48
hand config reports the fleet's worker defaults and which of them are
still missing; hand config set validates one value and writes it
atomically, refusing a model or effort the configured harness takes no
launch flag for.

Model and effort are stored keyed by that harness (config/model.claude),
so switching harnesses re-asks instead of handing a worker an identifier
chosen for a different tool. An older home's unkeyed value is moved under
the harness it belonged to on init and update.
The bare command is the session hook, so it is where a supervising agent
learns the fleet is not configured yet. It now carries the same config
block hand config prints, and leads its help with one question per
missing value for the agent to put to the operator.
init now only bootstraps: it never reads stdin, asks nothing, and writes
no worker default, so it runs unchanged in a script, in CI, or with stdin
closed. What the fleet should dispatch is settled by the operator in the
first supervising session instead, because a value invented at bootstrap
time is indistinguishable from one the operator chose.

The --setup flag is gone rather than deprecated: nothing in the tool, the
tests or the session integration invoked it, and an unknown flag already
refuses with a usage document naming it.
…faults

The generated block now makes settling a missing worker default a step of
the workflow, and says who answers: the supervisor asks the operator in
conversation and persists the reply with hand config set. Answering its
own harness dialog would configure the fleet with the agent's guess.
The quick start built the tool from a checkout, which is the maintainers'
setup rather than an install, and pointed at hand init --setup for
configuration. It now installs a release binary, initializes a home that
asks nothing, and explains the worker defaults the first session asks for.
Building a checkout moves to CONTRIBUTING.md.
PR #165 made Codex model and effort capable before this rebase.
Configuration tests follow the merged harness contract instead of the
provisional matrix.

Refs #161
@atqamz
atqamz force-pushed the 161-noninteractive-init branch from 48b1760 to 9a4cd9a Compare August 5, 2026 02:09
@atqamz atqamz changed the title make hand init non-interactive and move first-run configuration into the supervising session feat(cmd): move worker setup out of init Aug 5, 2026
@atqamz
atqamz merged commit 48327af into main Aug 5, 2026
5 checks passed
@atqamz
atqamz deleted the 161-noninteractive-init branch August 5, 2026 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make init non-interactive and move first-run configuration into the supervising session

1 participant